1. Field of the Invention
The invention relates generally to protecting data in a data storage system. More specifically, the invention relates to continuous data protection using a combination of snapshot and journaling mechanisms and rebuilding data in a storage volume.
2. Discussion of Related Art
A typical large-scale storage system includes many diverse storage resources, including storage subsystems and storage networks. Many contemporary storage systems also control data storage and create backup copies of stored data to ensure that the data is always available. Often these stored systems have storage management that creates one or more logical volumes where the data in each volume is manipulated as a single storage device. In some instances, the volumes are managed as a single device through a technique called “storage virtualization”.
Storage virtualization allows storage capacity that is physically spread throughout a plurality of storage devices to be treated as a single logical pool of storage. Although an end user sees a single interface where all of the available storage appears as a single pool of local disk storage, the data may actually reside on different storage devices in different places. The data may even be moved to other storage devices without a user's knowledge. A storage virtualization module (SVM) masks the details of the individual storage devices, their actual locations, and the manner of accessing them, by mapping logical storage addresses to physical storage addresses. The SVM is configured between the host servers and the physical storage such that host server applications or file systems can mount logical volumes as seemingly physical drives without regard to the physical storage location or vendor type.
Regardless of the type of data storage system management, continuous data protection (CDP) is often a concern. CDP is the instant backup of computer data, where each change to the data is captured. CDP systems generally track every change to the data, but restore data by applying changes “backwards” in a relatively time consuming manner. For example, certain CDP systems modify original data in order to return back in time. Other types of CDP are “near contiguous” in that they provide snapshot like data restoration. While a user may be able restore data at particular point-in-time, the user loses the ability to restore data of a particular I/O request (input/output request).
A snapshot may be thought of as a representation or image of a primary copy of data at a given point in time. A snapshot generally creates a bit map or block level representation of a primary copy of a storage volume at a particular moment in time. Users typically gain a read-only access to the record of files and directories of the snapshot. By electing to restore the primary copy of the storage volume from a given snapshot taken, users may return the current file system to the prior state of the file system that existed when the snapshot was taken. A snapshot may be created instantly, using a minimum of file space, but may still function as a conventional file system backup. A snapshot may not actually create another physical copy of all the data, but may simply create pointers that are mapped to specific blocks of data taken at the point in time of the snapshot. Without more, however, this process can be relatively time consuming and make the data unavailable until a decision as to the integrity of the data can be made.